package cn.zj.note.view;

import cn.zj.note.todo.Record;
import cn.zj.note.util.StrFmtUtil;
import javafx.geometry.Pos;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;

public class RecordListCell extends ListCell<Record> {
    private VBox vBox = new VBox(0);
    // 初始化控件和其他UI组件，例如Label、ImageView等
    private Text content = new Text();
    private Label timeLabel = new Label();

    public RecordListCell() {
        // 构造器中初始化UI组件
        content.setWrappingWidth(680);
        content.setWrappingWidth(content.getLayoutBounds().getWidth()); // 设置prefWidth
        setContentDisplay(ContentDisplay.GRAPHIC_ONLY); // 或者CONTENT_DISPLAY_CENTER
//        setAlignment(Pos.CENTER_LEFT); // 根据需要设置对齐方式
        timeLabel.setFont(new Font("Arial",8));
        timeLabel.setAlignment(Pos.BOTTOM_RIGHT);
        vBox.getChildren().addAll(content, timeLabel);
        setGraphic(vBox);
    }

    @Override
    protected void updateItem(Record item, boolean empty) {
        super.updateItem(item, empty);

        if (empty || item == null) {
            // 清理或隐藏内容
            setText(null);
            setGraphic(null);
        } else {
            // 更新内容
            content.setText(item.getContent());
            timeLabel.setText(StrFmtUtil.fmtDate(item.getCreateTime()));
            setGraphic(vBox);

            // 如果需要，还可以添加更多自定义逻辑，如设置背景色、字体样式等
        }
    }

}